A current Internet draft “Known Mechanisms for Content Internetworking” by F. Douglas et al. provides a useful overview of content internetworking. (Nov. 8, 2001) The use of “Intelligent DNS (IDNS) is discussed as a way to handle request redirection.
Content networks play an important role in the overall architecture of the web.
In the Internet today several approaches have been proposed for providing infrastructure, at layers 4 through 7, to get content to end users or user agents in a scalable, reliable, and cost-effective fashion. In this regard, various protocols and appliances have been developed for the location, download, and usage tracking of content. Examples of such technologies include: web caching proxies, content management tools, and intelligent web switches.
In general, a content network can be viewed as a virtual content overlay network in the OSI stack. This content overlay layer enables the delivery of richer services that rely on underlying elements from all 7 layers of the stack to subscribers or end users. Content overlay services rely on layer 7 protocols such as HTTP or RTSP for transport.
However, regardless of the size of a content network, its ability to serve clients and subscribers is limited by economic realities and other factors. Hence, in order to increase the scale, reach and performance of content networks, it is possible to interconnect them. Hence, content internetworking is the interconnection of multiple content networks. In the networking field, content internetworking is also known as content distribution internetworking or content peering.
Content internetworking allows different content networks to cooperate to serve content to end users or user agents. This leads to the ability of content networks to share resources so as to provide larger scale and/or reach to each participant than they could otherwise achieve. In order to be able to interconnect content networks, various architectural components must be introduced. In particular, the interconnection of content networks is achieved through the establishment of common internetworking gateway. The gateway must be able to provide mechanisms to distribute content or inject content into the networks and must also be able to direct user requests between them. The task of directing users requests to various surrogates among the inter-networked content networks is also called request routing and it is done in a content router. It is also possible to define various accounting and authorization schemes for financial settlements. In the literature, a content router is also called a request routing system (RRS).
There are various request routing techniques that could be used within a content router to direct users request for content among internet-worked content networks. At a high-level, these may be classified under: DNS request-routing, transport-layer request-routing, and application-layer request-routing. However, regardless of the technique that is used for request routing, there should exist mechanisms within the content router that insures that the task of directing users requests is performed in a loop free manner.
Among the various request routing techniques, the use of DNS based mechanisms has gained popularity due to the ubiquity of DNS as a directory service. In DNS based request-routing techniques, the content router acts as a specialized DNS server that is inserted in the DNS resolution process. The content router is capable of returning a different set of A, NS or CNAME records based on defined policies, network conditions and cost. Such DNS servers have also been called Intelligent DNS servers (IDNS). In general, within IDNS, the use of CNAME redirection techniques is the preferred method of request routing.
Referring to FIG. 1 there is illustrated in a block diagram an internetworking of a plurality of content distribution networks (CDN). In general, an intelligent DNS (IDNS) system uses a DNS server 18, to redirect, typically via the DNS CNAME response, to an IDNS brokering server 20 within a selected CDN, for example CDNB 16. The brokering DNS server 20 monitors the load of other CDNs, CDNC 26, and CDNA 30 within a set of predefined “regions” (e.g., individual countries). Using the IP address of the DNS server 14 making a request, the IDNS brokering server 20 maps the DNS server 14 to a region and selects the CDN that serves that region “best” based on various metrics, for example CDNC 26.
The IDNS brokering server 20 uses CNAME or NS redirection to other CDNs, or it can forward the DNS request directly to a CDN that will respond to the request directly (not shown in FIG. 1). For example, a client 12 initially contacts (1) its local DNS server 14, which (2) contacts the IDNS brokering server 20, via a DNS server 18. The IDNS brokering server 20 (3) returns either (A) a CNAME or NS record redirecting to another CDN, e.g. GDNC 26, or (B) an A record for an edge server 22 within CDNB 16. (The latter is called a “triangular resolution”.) Eventually, (4) an IP address is returned to the client 12, which then requests (5) the control from server 28 and receives (6) the actual content.
Request-routing systems (RRS) present a “black-box” view of their associated distribution systems. Since in such an environment no CDN possesses a global view of all other CDNs, the request-routing system has to rely on a peer-to-peer model in which each request-routing system is only aware of its direct neighbor.
There are two known methods for redirecting a request between two interconnected request-routing systems. The first method is an interactive method where a RRS directs the request to the next-best (neighbor) RRS. This continues until a surrogate is finally selected. The second method is recursive where a RRS directs a request to the next-best RRS but expects an answer to return to the client. These two methods are analogous to recursive vs. iterative DNS lookups.
The interactive approach will either find a CDN that will accept the request or it will return a request failed message. With either result, considerable resources are involved with the messaging that is exchanged in this process.
Referring to FIG. 2 there is illustrated a typical exchange for four content delivery networks. A client 40 makes a request via its local access provider that is routed to RRS 42. The RRS 42 then relays the request to a CDNA 44, who refuses the request. The RRS 42 next relays the request to a CDNB 46, who refuses the request. The RRS 42 next relays the request to a CDNC 48, who accepts the request. RRS 42 then provides the client with the DNS of CDNC 48 via its local access provider.
A second method of request redirection is recursive. Here the RRS redirects a request to the next best RRS, but expects the new RRS to return a reply to the client. Either of these methods will work if there is one level of peering. However, if there are multiple levels of peering, these simple redirection schemes may lead to looping, where the request continues to be past among the CDN peers without converging on a CDN that will accept the request.